FUNCTION calcNumbersAtAge
  {
     int i,j;
     N.initialize();
     //biom.initialize();

     //Estimate recruitment
     log_rt = log_avgrec+log_rec_devs;
     for(i=1;i<=nco;i++)
	{
		rec=mes_rec(i);
		N(rec,i)=mfexp(log_rt(i));
	}
	//Now the entire population matrix
     for(i=1;i<=nco;i++)
	{
		rec=mes_rec(i);
		surv=mes_surv(i);
		for(j=rec;j<surv;j++)
		{
			N(j+1,i)=N(j,i)*S(j,i);
		}
	}

     for(i=1;i<=nco;i++)
	{
		for(j=1;j<=nmo;j++)
		{
			biom(j,i)=N(j,i)*s_weico(j,i);   //biomass per cohort
			sb(j,i)=biom(j,i)*s_matco(j,i); //mature biomass per cohort
		}
	}
     for(j=1;j<=nmo;j++)
	{
		ntot(j)=0;
		biomtot(j)=0;
		sbiom(j)=0;
		vulnbiom(j)=0;	
		for(i=1;i<=nco;i++)
		{
			ntot(j)+=N(j,i);
			biomtot(j)+=biom(j,i);
			sbiom(j)+=sb(j,i);
			vulnbiom(j)+=sel_fish(j,i)*biom(j,i)*mfexp(-0.5*Z(j,i));
		}
		sbiom(j)=sbiom(j)*s_tempMat(j); //mature biomass corrected by seasonal maturity
	}
	if(verbose)cout<<"**** Ok after calcNumbersAtAge ****"<<endl;
  }

